cc-pocket 1.5 · Mobile — the complete 390px experience
Page theme
SCREEN M1 Nav · hero · the moment — at 390px collapsed bar + open menu · full-width stacked buttons · permission card docked below the phone
390px · dark · nav collapsed → hero → moment

Drive Claude Code from your phone.在手机上操控你的 Claude Code。

Resume sessions, stream the output, and approve tool permissions remotely — end-to-end encrypted.恢复会话、看流式输出、远程批准工具授权——端到端加密。

MIT·open source·zero-knowledge relay·no account

Fix relay reconnectdefault
Lidapeng-MacBook · ~/proj/app/cc-pocket
The reconnect loop dies after the 3rd retry — the scope owning the timer is cancelled when the socket closes.
Bashgradle :relay:test9s
Guard added — reconnect survives scope cancellation.
+
Message Claude…
Claude needs permission
Run command · Bash
rm -rf ./build && ./gradlew clean

You stepped away. Claude is blocked on a permission prompt.你离开了工位,Claude 正卡在一个授权弹窗上。
Approve it from your pocket in two taps.口袋里两下点掉它。

Claude needs permission
Edit file
src/relay/WsClient.kt
390px · dark · menu open

Drive Claude Code from your phone.在手机上操控你的 Claude Code。

Resume sessions, stream the output, and approve tool permissions remotely.恢复会话、看流式输出、远程批准工具授权。

390px · light · hero (mobile light lock)

Drive Claude Code from your phone.在手机上操控你的 Claude Code。

Resume sessions, stream the output, and approve tool permissions remotely — end-to-end encrypted.恢复会话、看流式输出、远程批准工具授权——端到端加密。

MIT·open source·zero-knowledge relay·no account

Fix relay reconnectdefault
Lidapeng-MacBook · ~/proj/app/cc-pocket
The reconnect loop dies after the 3rd retry — the scope owning the timer is cancelled when the socket closes.
Bashgradle :relay:test9s
Guard added — reconnect survives scope cancellation.
+
Message Claude…
Claude needs permission
Run command · Bash
rm -rf ./build && ./gradlew clean
Screen M1 notes — spacing deltas from desktop
  • Nav collapses to 56px (desktop 60–72px). Language seg hidden; hamburger appears. Open menu is a blur panel docked under the bar with a terracotta View on GitHub → row last.
  • Hero padding 42px 20px (desktop 150px 0 90px). H1 hits the clamp floor ~40px here (shown at 38px). Buttons full-width stacked, 10px gap; trustline wraps to two lines.
  • Composition — permission card docked full-width below the phone (overlapping −26px), not floated at reduced width. The Allow button stays the single terracotta focal.
  • The moment stacks: lead line above, mini card below, both centered. Section padding 46px 22px (desktop 64px, side-by-side grid).
SCREEN M2 Landing · vignettes 01 & 02 — mfeat pattern text → phone, centered · same rhythm as 1.4 Screens A/B · locks all four vignettes on mobile
390px · vignette 01
01

Approve from anywhere随处批准

Tool-permission requests reach your phone the moment Claude raises one. Allow or deny in seconds — or it times out to a safe deny.Claude 一发起工具授权,就推到手机上。几秒内允许或拒绝——否则超时安全拒绝。

auto-deny on timeout
Chat
~/proj/app/cc-pocket · ⑂ main
Claude needs permission
Run command · Bash
rm -rf ./build && ./gradlew clean
0:18⑂ main
390px · vignette 02
02

Take over, don't fork接管,而不是分叉

Continue a terminal session from your phone and it resumes in place — no duplicate branch. It forks only while the terminal is still writing.在手机上续接终端会话,它会原地恢复——不产生重复分支。只有终端仍在写入时才分叉。

resumes in place
Resume session
Lidapeng-MacBook · ~/proj/app/cc-pocket
Live on terminal
Fix relay reconnectterminal
Running on Lidapeng-MacBook · 💬 12 · ⑂ main
Continue on this phone
resumes in place · ⑂ no fork
Screen M2 notes — mfeat rhythm
  • Exact 1.4 A/B rhythm — number → title → copy → detail chip → phone, all centered, phone below the text. Frame gap 16px; phone at default --pw:300px to match A/B.
  • Single terracotta focal per phone — vignette 01: the Allow button; vignette 02: the Continue on this phone button. The resumes in place confirm uses success green, not terracotta.
  • Four vignettes locked — 01 Approve · 02 Take over · 03 See what changed (1.4 Screen A) · 04 It finds you (1.4 Screen B).
SCREEN M3 Desktop + fleet — at 390px sidebar hidden (chat pane only) · fleet card full-width below · mini 3-up → 1-col · desktop links wrap
390px · dark · desktop & fleet section

Desktop edition桌面版

One app. Every computer.一个应用,掌控每台电脑。

A native app for macOS, Linux and Windows — drive one computer from another, same end-to-end encryption as your phone.面向 macOS、Linux 与 Windows 的原生应用——用一台电脑操控另一台,端到端加密与手机同款。

Fix relay reconnect
Lidapeng-MacBook · ~/proj/app/cc-pocket
Fix relay reconnectdefault
The reconnect loop dies after the 3rd retry — the timer's scope is cancelled when the socket closes. Hoisting the backoff to the parent scope.
Bashgradle :daemon:test12s
kotlincopy
fun reconnect(): Job = scope.launch {
  delay(250)
  open("relay")
}  // survives cancel
Message Claude…
esc stop
3 computers1 needs you
Lidapeng-MacBook2 running
mac-studio 1 approval
devbox-linuxoffline
⌘K everywhere随处可用
Jump to any project or session.跳转到任意项目或会话。
Approvals follow you授权跟着你走
Tray popover when the window's behind.窗口在后台时,托盘弹窗提醒。
Pinned sessions固定会话
⌘1–9 to jump straight in.一键直达。

Prefer the desktop app? Download for macOS .dmg · Windows .msi · Linux .AppImage想用桌面版?下载 macOS .dmg · Windows .msi · Linux .AppImage

Screen M3 notes — spacing & crop
  • Sidebar hidden — window body drops to a single 1fr column, chat pane only. Traffic-light bar + meta line stay. Device chrome stays dark.
  • Chat crop ≈ 300px — header + one assistant line + one tool row + a short (≤4-line) code block + composer. Code drops to 11px at this width; body gap 12px, padding 14px.
  • Fleet card full-width below the window (margin-top:16px, no float / no overlap). Mini 3-up collapses to 1-col (gap:16px).
  • Desktop downloads become one wrapping text-link line (replacing the two ghost buttons), naturally breaking to two lines at 390.
  • Section padding 44px 22px (desktop 56px 32px slab).
SCREEN M4 How it works · Security — at 390px architecture flow goes vertical · security 4-up → 1-col · pullquote centered
390px · dark · how it works

How it works工作原理

A zero-knowledge bridge, phone to computer.从手机到电脑的零知识桥接。

phone
Compose MultiplatformCompose 跨平台
wss · ciphertext ↓E2E encrypted
relay
zero-knowledge broker零知识中继
wss · ciphertext ↓opaque frames
daemon
your computer你的电脑
stdio ↓local
claude
CLI on your machine本机 CLI

The relay only forwards opaque encrypted frames. Plaintext never leaves your phone and your computer.中继只转发不透明的加密帧。明文永远不离开你的手机和你的电脑。

390px · dark · security

Security安全

The relay can't read a thing.中继什么也读不到。

Zero-knowledge relay零知识中继

Forwards ciphertext only; holds no message content and no private keys.只转发密文;不保存任何消息内容,也不持有私钥。

End-to-end encrypted端到端加密

P-256 ECDH + HKDF + AES-256-GCM, a Noise-style handshake; plaintext stays on your two trusted endpoints.P-256 ECDH + HKDF + AES-256-GCM,Noise 式握手;明文只留在你的两个可信端点。

No accounts, no login无账号、免登录

Pair by scanning a QR or typing a 6-digit code; the daemon's key travels out-of-band so even a malicious relay can't MITM.扫码或输入 6 位配对码即可;密钥经带外传递,恶意中继也无法中间人攻击。

Open & self-hostable开源可自托管

Clean-room Kotlin, MIT, zero content logging; run your own relay.纯净室 Kotlin,MIT 许可,零内容日志;可自建中继。

Trust without trusting us.信任,但不必信任我们。
Read the full threat model →阅读完整威胁模型 →
Screen M4 notes — spacing deltas
  • Architecture goes vertical — full-width nodes stacked; each connector becomes a centered row: label above a 32px vertical gradient line, sub below. Arrows read .
  • Security 4-up → 1-col, card gap 14px (desktop grid gap 16px). Cards keep 20px padding, 26px terracotta icon, radius 16.
  • Pullquote centered, margin-top:36px / padding-top:32px (desktop 56/48). Blockquote drops to 26px; threat-model link below.
  • Section padding 44px 22px (desktop 104px 0).
SCREEN M5 Get started — both device states · connect flow · footer phone visitor (no QR) vs desktop visitor (QR) · scrolling curl · 2-col footer link grid
390px · State 1 · phone visitor (no QR)

Get the app获取应用

Install it right here.就在这里安装。

App Store
iOS 16+ · iPhone & iPad
Download on the App Store从 App Store 下载

Public beta via TestFlight — a seat opens the moment one frees up.通过 TestFlight 公测——有名额空出即可加入。

Android
APK · Android 9+
Download APK on GitHub在 GitHub 下载 APK

Signed release APK from the releases page. Play Store listing in review.来自 releases 页的已签名 APK。Play 商店上架审核中。

390px · State 2 · desktop visitor (QR)

Get the app获取应用

Scan to your phone.扫码装进手机。

App Store
iOS 16+ · iPhone & iPad
Scan to download扫码下载

Public beta via TestFlight.通过 TestFlight 公测。

Android
APK · Android 9+
Scan to download扫码下载

Signed release APK on GitHub.GitHub 上的已签名 APK。

390px · connect flow (3 steps)

Connect连接

Three commands to connected.三条命令,连上。

1

Install the daemon安装守护进程

macOSLinuxWindows
$curl -fsSL https://get.cc-pocket.dev/install.sh | sh -s -- --relay wss://relay.cc-pocket.dev --channel stable
2

Pair your phone配对你的手机

$cc-pocket pair

Prints a QR + a 6-digit code.打印二维码和 6 位配对码。

3

Open the app, scan the QR打开 App,扫码

…or type the 6-digit code. You're connected end-to-end.……或输入 6 位码。你已端到端连接。

Requires an installed, logged-in claude CLI.需要已安装并登录的 claude CLI。

390px · footer
Screen M5 notes — states & spacing
  • Store cards adapt to visitor — phone visitor gets one full-width primary button per card + TestFlight footnote; desktop visitor (narrow window) swaps the button for a white 148px QR tile + Scan to download hint. Card gap 14px.
  • Connect flow — numbered circles reused; OS tabs wrap; Install/Update segmented toggle above the command. The long curl one-liner scrolls horizontally inside its pill with a right-edge fade; copy button pinned right (never scrolls). Steps 2 & 3 compact (tighter h4 margins).
  • Footer — brand + tagline first (full width), then the three link columns as a 2-col grid (Legal wraps to row 2). Bottom row (© line + language seg) stacks left-aligned. Padding 38px 22px 28px.
SCREEN M6 Features page — mobile rhythm (composite) page hero → one full group → the three special molecules → footer CTA · all dark
390px · dark · features page, top to bottom

Features特性

Everything it does, in your pocket.它做的一切,都在口袋里。

The full feature set — grouped by what you actually reach for.完整特性——按你真正会用到的方式分组。

Share a folder共享一个文件夹

Lend an agent, not your laptop.借出一个 agent,而不是你的电脑。

Scope a guest to one directory with a live agent — and be honest about the limits.把访客限定在一个目录里,配一个在线 agent——并如实说明边界。

Invite to one folder邀请到一个文件夹

Scope a guest to a single directory. Everything outside it stays invisible.把访客限定在单个目录,之外的一切都不可见。

Three access levels三档访问权限

Read, propose, or run — pick how much rope the guest gets, per invite.只读、可提议、可执行——每次邀请单独决定放多少权限。

Expiry & revoke到期与吊销

Every share has a clock and a kill switch. Revoke and the link is dead instantly.每个共享都有时钟和急停开关。一吊销,链接立刻失效。

Honest boundaries诚实的边界

We tell guests exactly what they can and can't reach — in plain words.我们用大白话告诉访客能碰什么、不能碰什么。

Molecule · usage strip (stacked)
Today · hour by hour
1.84M tokens · $4.20 est.
Last 30 days
Molecule · share boundary (stacked)
THEY GET
  • The one folder you shared — read, and edit if allowed.
  • A live agent that runs commands inside it.
  • Their own session history, separate from yours.
THEY DON'T GET
  • Any path outside the shared folder.
  • Your other projects, keys, or credentials.
  • A way to invite anyone else in.
The honest part: shell commands run as your user on your machine. We fence the working directory, not the OS — so we say so, plainly.
Molecule · workflow run (--pw:280)
Workflow runphase 2/4
~/proj/app/cc-pocket · release-pipeline
release-pipeline 3m 12s
phase 2/4 · analyze·12/34 agents
discover
analyze
patch
verify
one glance across 34 parallel agents一眼看遍 34 个并行 agent
Get started

Claude Code, in your pocket.Claude Code,装进口袋。

Get the app获取应用
Screen M6 notes — features rhythm
  • Page hero — H1 clamps to 33px, sub + two stacked full-width buttons. Padding 40px 22px.
  • Group — eyebrow + H2 + sub, then cards stacked 1-col at 14px gaps (the shipped group rhythm at 390).
  • Usage strip stacked — 24 hourly bars full-width, stats line, then the 6×5 heatmap left-aligned below (cells go fluid 1fr to fill width).
  • Boundary card stacked — THEY GET → hairline divider → THEY DON'T GET → honest strip (the two columns become rows).
  • Workflow phone at --pw:280 centered with its caption. Molecule blocks separated by hairlines at 34px 22px padding. Closes on a centered footer CTA.